#ifndef _POINTLIGHT_H
#define _POINTLIGHT_H

#include <vector>

#include <GL/glew.h>

#include "Light.h"
#include "Vector3.h"
#include "Attenuation.h"
#include "Shader.h" 
#include "ResourceManager.h"

#ifdef GALLIUMENGINE_DLL 
#define GALLIUMENGINE_API __declspec( dllexport )
#else
#define GALLIUMENGINE_API __declspec( dllimport )
#endif

namespace GalliumEngine
{
	
	class PointLight : public Light
	{
		Vector3 position;
		Attenuation attenuation;
		Shader* shader;
		std::vector<BindParams> params;
	public:
		GALLIUMENGINE_API PointLight(void);
		GALLIUMENGINE_API PointLight(Vector3 _position, Colour _colour);
		GALLIUMENGINE_API PointLight(Vector3 _position, Colour _colour, Attenuation _attenuation);
		GALLIUMENGINE_API ~PointLight(void);
		GALLIUMENGINE_API void setLightPosition(Vector3 _position);
		GALLIUMENGINE_API Vector3 getLightPosition();
		GALLIUMENGINE_API void setLightAttenuation(Attenuation _attenuation);
		GALLIUMENGINE_API Attenuation getLightAttenuation();
		GALLIUMENGINE_API void draw();
	};

}

#endif
